第 1 章  ·  语言模型(一)-什么是语言模型

第1章 第8节 语言模型(一)-什么是语言模型


第1章 第8节 语言模型(一)-什么是语言模型

8.1 阅读指南

前面几节,我们了解了ChatGPT如何玩文字接龙游戏。现在,让我们稍微正式一点,引入一个经常听到的术语:语言模型(Language Model)。这个词听起来很学术,但理解之后会发现它并不神秘。


8.2 人类理解世界的方式

在谈"语言模型"之前,先聊聊"模型"这个词本身。

我们生活在一个复杂得难以想象的世界里。为了理解这个世界,人类发明了一种强大的工具:用简化的数学来描述复杂的现实,这就是"模型"。

物理学中的模型

比如,一个小孩抛出一个球,球划出一道弧线落地。这个简单的动作,背后涉及无数的物理因素:球的材质、空气阻力、地球引力、风速、温度……

但牛顿给了我们一个优雅的模型:

h=v0t−12gt2h = v_0 t - \frac{1}{2}gt^2

这个公式忽略了无数细节,却能相当准确地预测球的轨迹。这就是模型的力量:用简单的数学,抓住现象的本质。

气象学中的模型

再比如,明天会不会下雨?这涉及大气中数万亿个分子的运动,地球自转,太阳辐射……

气象学家建立的模型,用几千个方程,数百万个数据点,模拟大气的运动,最终给出:

明天降雨概率:65%

不完美,但有用。这就是模型的价值:

在复杂中找到规律,在不确定中给出预测。

那么,"语言模型"呢?

类似地,人类语言是一个极其复杂的现象。当发一条朋友圈"今天emo了",这背后涉及:

这么复杂的现象,怎么用数学来描述呢?似乎不可能。

但语言模型给了我们一个数学的角度:把语言看作一个概率过程

8.3 语言模型的数学定义

现在,给出一个正式的定义:

语言模型,就是对语言概率分布的数学建模。

什么意思?拆解一下。

语言是随机过程

想象一下,正在写一篇文章。写到"今天天气"这四个字之后,下一个词可能是:

下一个词不是确定的,而是有多种可能性,每种可能性有一个概率。

语言模型计算概率

语言模型做的事情,就是用数学方法,计算出这个概率分布:

P(w∣C)P(w|C)

这个符号读作:"在给定前文的条件下,某个词出现的概率"。

具体例子:

P(真好∣今天天气)=0.35P(\text{真好}|\text{今天天气}) = 0.35
P(很好∣今天天气)=0.25P(\text{很好}|\text{今天天气}) = 0.25
P(不错∣今天天气)=0.15P(\text{不错}|\text{今天天气}) = 0.15
P(糟糕∣今天天气)=0.08P(\text{糟糕}|\text{今天天气}) = 0.08
P(紫色∣今天天气)=0.0001P(\text{紫色}|\text{今天天气}) = 0.0001

这个概率分布,就是对"人类在这个上下文中会说什么"的数学建模。

为什么叫"建模"?

因为这个概率分布不是随意的,它反映了语言的内在规律。

继续用"今天天气"这个例子来说明:

规律一:语法约束

为什么P(紫色∣今天天气)=0.0001P(\text{紫色}|\text{今天天气}) = 0.0001这么低?

因为中文语法不允许"天气"后面接颜色词。语言模型学会了这个规律,所以给了极低的概率。

再看一个例子:

P(吃∣我喜欢)=0.15P(\text{吃}|\text{我喜欢}) = 0.15
P(苹果∣我喜欢)=0.12P(\text{苹果}|\text{我喜欢}) = 0.12
P(的∣我喜欢)=0.001P(\text{的}|\text{我喜欢}) = 0.001

为什么"的"概率这么低?因为"我喜欢的"这种说法不符合中文语法(虽然口语中偶尔也有,但很罕见)。

规律二:语义连贯

P(爬树∣猫会)=0.18P(\text{爬树}|\text{猫会}) = 0.18
P(飞∣猫会)=0.001P(\text{飞}|\text{猫会}) = 0.001

为什么"飞"概率这么低?因为在现实世界中,猫不会飞。语言模型从数据中学会了这个常识。

规律三:上下文相关

想象这个场景:

前文A:"我买了一部新手机,它的_"
前文B:"我做了一道菜,它的
_"

虽然都是"它的",但下一个词的概率分布完全不同。

前文A:

P(屏幕∣…它的)=0.25P(\text{屏幕}|\text{…它的}) = 0.25
P(味道∣…它的)=0.001P(\text{味道}|\text{…它的}) = 0.001

前文B:

P(味道∣…它的)=0.30P(\text{味道}|\text{…它的}) = 0.30
P(屏幕∣…它的)=0.001P(\text{屏幕}|\text{…它的}) = 0.001

语言模型会根据更前的上下文(手机 vs 菜)来调整概率。


小结:

语言模型就是用数学的方式,把这些规律"编码"进概率分布中。这就是为什么我们说,语言模型是对语言的"建模"。

8.4 冷知识:香农游戏——语言模型的"祖先"(1948年)

你可能没想到,语言模型的思想,早在1948年就被提出了——比ChatGPT早了75年!

克劳德·香农是谁?

克劳德·香农(Claude Shannon),信息论之父,现代数字通信的奠基人。他在1948年发表了一篇划时代的论文《通信的数学理论》,奠定了整个信息时代的理论基础。

但很少有人知道,他在这篇论文中,还提出了一个有趣的"游戏"。

香农游戏:人类版的"预测下一个词"

香农做了一个实验:

  1. 给你一段英文文本的开头(来自小说《名利场》):
    "THE ROOM WAS NOT VERY LIGHT A SMALL OBLONG READI___"
  2. 请你猜下一个字母是什么?
  3. 如果猜对了,继续猜下一个;如果猜错了,告诉你正确答案,然后继续。
  4. 记录你猜对/猜错的次数。

他让志愿者玩这个游戏,发现了一个惊人的规律:

人类能够相当准确地预测下一个字母!

例如:

"THE ROOM WAS NOT VERY LIGHT A SMALL OBLONG READI___"

大部分人会猜:N, G
→ "READING" (阅读/阅览室)

人类的大脑,自动学会了英语的:

这和语言模型有什么关系?

香农的核心洞察是:语言不是随机的,而是有规律的。这种规律可以用概率来描述。

他甚至给出了一个数学公式,计算英语的"熵"(Entropy)——衡量语言的不确定性:

H=−∑P(x)log⁡P(x)H = -\sum P(x) \log P(x)

这就是现代语言模型的数学基础。

从香农游戏到ChatGPT

对比一下:

香农游戏(1948):

ChatGPT(2022):

本质是一样的,都是在建模:P(下一个∣前文)P(\text{下一个}|\text{前文})

香农的预言

更神奇的是,香农在1948年就预言了:

"如果我们能够精确计算语言的概率分布,我们就能制造出一台'写作机器',它能够生成像人类一样的文本。"

这不就是ChatGPT吗?!

一个有趣的对比

1948年,香农用人类志愿者做实验:

2023年,ChatGPT:

75年后,用机器实现了香农的梦想,而且远超他的预期。

如果香农还活着……

克劳德·香农于2001年去世,享年84岁。他没能看到ChatGPT的诞生。

但如果他还活着,看到自己75年前的理论,最终变成了改变世界的AI产品,他会说什么呢?

也许他会说:"我早就知道了。数学不会骗人。"

每当用ChatGPT的时候,不妨想一想:75年前,一个天才数学家,已经在纸上勾勒出了这一切的蓝图。

8.5 ■ 学点英语

中文 English 音标 说明
语言模型 Language Model /ˈlæŋɡwɪdʒ ˈmɒdl/ 对语言序列概率分布进行建模的数学模型
条件概率 Conditional Probability /kənˈdɪʃənl ˌprɒbəˈbɪləti/ 在已知某事件发生的条件下另一事件发生的概率,记为P(词
联合概率 Joint Probability /dʒɔɪnt ˌprɒbəˈbɪləti/ 多个事件同时发生的概率,记为P(词1,词2,...,词n)
概率分布 Probability Distribution /ˌprɒbəˈbɪləti ˌdɪstrɪˈbjuːʃən/ 描述随机变量所有可能取值及其概率的函数,语言模型的核心输出对象
香农游戏 Shannon Game /ˈʃænən ɡeɪm/ 香农在1948年提出的根据前文预测下一个字母的思想实验,语言模型概念的雏形
自回归生成 Autoregressive Generation /ɔːtoʊrɪˈɡresɪv ˌdʒenəˈreɪʃən/ 从左到右逐词生成文本序列的过程,每一步依赖之前已生成的全部内容
下一Token预测 Next-Token Prediction /nekst ˈtoʊkən prɪˈdɪkʃən/ 语言模型根据已有Token序列预测下一个Token的核心训练任务和目标
信息熵 Entropy /ˈentrəpi/ 衡量信息不确定性的度量单位,香农提出的核心概念

8.6 ■ 思考帧

来自: 学习中心|逻辑帧 Logic Frame

文字接龙(四)-Token、幻觉与创造力 语言模型(二)-从数据中学习规律
本节目录